package com.wiz.web.dao.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.wiz.web.vo.criteria.FpCriteria;
import com.wiz.web.vo.criteria.HqStationCriteria;
import com.wiz.web.vo.to.AdminGroupFpOrderHistoryTO;
import com.wiz.web.vo.to.AdminTO;
import com.wiz.web.vo.to.FpTO;
import com.wiz.web.vo.to.MemberGradeTO;
import com.wiz.web.vo.to.OilTankTO;
import com.wiz.web.vo.to.PRConfigTO;
import com.wiz.web.vo.to.PointTO;
import com.wiz.web.vo.to.PriceMessageTaskTO;
import com.wiz.web.vo.to.StationTO;

public interface HqStationMapper {

	/**
	 * 获取企业所有会员等级
	 * @param criteria
	 * @return
	 */
	List<MemberGradeTO> getGradesByHqId(HqStationCriteria criteria);
	
	/**
	 * 获取数量企业所有会员等级
	 * @param criteria
	 * @return
	 */
	int getCntGradesByHqId(HqStationCriteria criteria);
	
	/**
	 * 获取指定积分兑换to
	 * @return
	 */
	PointTO getPointByConfigId(@Param(value="id")Integer id);
	
	/**
	 * 根据总部ID获取积分兑换列表
	 * @param criteria
	 * @return
	 */
	List<PointTO> getPointsByHqId(HqStationCriteria criteria);
	
	/**
	 * 根据总部ID获取积分兑换列表
	 * @param criteria
	 * @return
	 */
	int getCntPointsByHqId(HqStationCriteria criteria);
	
	/**
	 * 获取对应油品
	 * @param id
	 * @return
	 */
	PRConfigTO getPrConfig(@Param(value="id")int id);
	
	/**
	 * 新增油罐监控信息
	 * @param to
	 * @return
	 */
	int insertOilTank(OilTankTO to);
	
	/**
	 * 查询油枪二维码信息
	 * @param to
	 * @return
	 */
	FpTO getFpQrById(FpCriteria criteria);
	
	/**
	 * 更新油枪二维码
	 * @param to
	 * @return
	 */
	int updateFpQr(FpCriteria criteria);
	
	/**
	 * 删除油枪二维码关联关系
	 * @param criteria
	 * @return
	 */
	int deleteFpQr(FpTO qr);
	
	/**
	 * 查询油枪信息
	 * @param to
	 * @return
	 */
	FpTO getFpById(FpCriteria criteria);
	
	/**
	 * 更新油枪配置
	 * @param to
	 * @return
	 */
	int updateFpByStation(FpCriteria criteria);
	
	/**
	 * 新增油枪配置
	 * @param to
	 * @return
	 */
	int insertFpByStation(FpCriteria criteria);
	
	/**
	 * 更新油枪监控状态
	 * @param to
	 * @return
	 */
	int updateFpMonitor(FpCriteria criteria);
	
	/**
	 * 查询是否有该班次
	 * @param to
	 * @return
	 */
	int selectAdminGroup(AdminTO to);
	
	/**
	 * 新增开始班组数据
	 * @param to
	 * @return
	 */
	int insertStartAdminGroup(AdminTO to);
	
	/**
	 * 更新结束班组
	 * @param to
	 * @return
	 */
	int updateEndAdminGroup(AdminTO to);
	
	/**
	 * 新增打卡上下班
	 * @param to
	 * @return
	 */
	int insertAttendHistory(AdminTO to);
	
	/**
	 * 查询本次调价任务
	 * @return
	 */
	List<PriceMessageTaskTO> getPriceMessageTaskHistory(@Param(value="hqId")String hqId,
			@Param(value="operateTime")String operateTime);
	
	/**
	 * 更新调价任务状态
	 * @param id
	 * @param status
	 * @return
	 */
	int updatePriceMessageTask(@Param(value="id")Integer id,
			@Param(value="status")Integer status);
	
	/**
	 * 获取相应员工信息
	 * @param stationAdminId
	 * @return
	 */
	AdminTO getAdminLoginInfoByAdminId(@Param(value="stationAdminId")String stationAdminId,
			@Param(value="stationId")String stationId);
	
	int deleteGroupPaidHistory(@Param(value="hqId")String hqId, @Param(value="stationId")String stationId,
			 @Param(value="groupNo")String groupNo);
	
	int deleteGroupChargeHistory(@Param(value="hqId")String hqId, @Param(value="stationId")String stationId,
			 @Param(value="groupNo")String groupNo);
	
	int deleteGroupOrderHistory(@Param(value="hqId")String hqId, @Param(value="stationId")String stationId,
			 @Param(value="groupNo")String groupNo);
	
	int deleteGroupCardHistory(@Param(value="hqId")String hqId, @Param(value="stationId")String stationId,
			 @Param(value="groupNo")String groupNo);
	
	int insertGroupPaidHistory(AdminTO to);
	
	int insertGroupChargeHistory(AdminTO to);
	
	int insertGroupOrderHistory(AdminGroupFpOrderHistoryTO to);
	
	int insertGroupCardHistory(AdminGroupFpOrderHistoryTO to);
	
	/**
	 * 获取总部下的所有站点
	 * @param hqId
	 * @return
	 */
	List<StationTO> getStationsByHqId(HqStationCriteria criteria);
	
	int getCntStationsByHqId(HqStationCriteria criteria);
}
